{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c8eeb712-0fba-4a1c-b540-83ecb4021776",
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "23652687-c750-42b6-9ed3-d4774e7644be",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "from os.path import exists\n",
    "from torch import nn\n",
    "import torchvision\n",
    "import copy\n",
    "import PIL.Image as Image\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import os\n",
    "from jsputils import paths, nsdorg, plotting, encoding, nnutils, selectivity, validation, eiganalysis,lesioning\n",
    "from fastprogress import progress_bar\n",
    "from IPython.core.debugger import set_trace\n",
    "\n",
    "import sys\n",
    "sys.path.append('/home/jovyan/work/DropboxSandbox/GSN')\n",
    "import gsn\n",
    "from gsn.rsa_noise_ceiling import rsa_noise_ceiling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "78bc6daf-4ab7-4935-85a6-43d1984c8199",
   "metadata": {},
   "outputs": [],
   "source": [
    "class fMRISubject:\n",
    "    def __init__(self, subj, space, beta_version):\n",
    "        self.subj = subj\n",
    "        self.space = space\n",
    "        self.beta_version = beta_version\n",
    "        self.betadir = f'{paths.nsd()}/nsddata_betas/ppdata/{self.subj}/{self.space}/{self.beta_version}'   \n",
    "        self.processed_datadir = f'{paths.brain_region_savedir()}/{self.subj}'\n",
    "        os.makedirs(self.processed_datadir,exist_ok=True)\n",
    "\n",
    "        if self.space == 'nativesurface':\n",
    "            self.hemis = ['lh', 'rh']\n",
    "        elif self.space == 'func1pt8mm':\n",
    "            self.hemis = ['full']\n",
    "        \n",
    "        if not hasattr(self, 'metadata'):\n",
    "            self.get_voxel_metadata()\n",
    "    \n",
    "    def get_voxel_metadata(self):\n",
    "        self.metadata = nsdorg.load_voxel_info(self.subj, self.space, self.beta_version)\n",
    "        \n",
    "    def plot_data(self, data, title):\n",
    "        plotting.plot_ROI_flatmap(self.subj, self.space, title, data, vmin = np.nanmin(data),\n",
    "                                  vmax=np.nanmax(data),colorbar=True)\n",
    "        \n",
    "            \n",
    "    def load_fmri_data(self):\n",
    "        # Load fMRI data from the given path and preprocess it\n",
    "        pass\n",
    "\n",
    "    def find_brain_regions(self):\n",
    "        # Find brain regions with selectivities and add them to self.brain_regions\n",
    "        pass\n",
    "    \n",
    "class BrainRegion(fMRISubject):\n",
    "    def __init__(self, subj, roi, ncsnr_threshold, plot = True):\n",
    "        \n",
    "        self.savefn = f'{subj.processed_datadir}/{subj.space}_{roi}.npy'\n",
    "        \n",
    "        if exists(self.savefn):\n",
    "            print('betas already saved. loading...')\n",
    "            self.betas = np.load(self.savefn,allow_pickle=True).item().betas\n",
    "            self.rep_cocos = self.betas['rep_cocos']\n",
    "            self.included_voxel_idx = self.betas['included_voxel_idx']\n",
    "        \n",
    "        if hasattr(subj,'metadata'):\n",
    "            self.metadata = subj.metadata\n",
    "        super().__init__(subj.subj, subj.space, subj.beta_version)\n",
    "        self.roi = roi\n",
    "        self.ncsnr_threshold = ncsnr_threshold\n",
    "\n",
    "        self.roi_indices = nsdorg.get_voxel_group(self.subj, self.space, self.roi,\n",
    "                                                  self.ncsnr_threshold, self.metadata, plot = plot)\n",
    "        self.get_ncsnr()\n",
    "\n",
    "    def get_ncsnr(self):\n",
    "        \n",
    "        self.ncsnr = []\n",
    "        if self.space == 'nativesurface':\n",
    "            self.ncsnr = np.concatenate((self.metadata[0]['lh.ncsnr'].values,\n",
    "                                         self.metadata[1]['rh.ncsnr'].values))\n",
    "\n",
    "            self.ncsnr[np.logical_not(self.roi_indices['full'])] = np.nan\n",
    "        elif self.space == 'func1pt8mm':\n",
    "            raise ValueError('not implemented yet')\n",
    "        \n",
    "    def load_betas(self):\n",
    "        \n",
    "        if not hasattr(self, 'betas'):\n",
    "            self.betas, _, self.included_voxel_idx, self.rep_cocos = nsdorg.load_betas(self.subj, \n",
    "                                                                                 self.space, \n",
    "                                                                                voxel_group = self.roi,\n",
    "                                                                                ncsnr_threshold = self.ncsnr_threshold,\n",
    "                                                                                plot=False\n",
    "                                                                                )\n",
    "            \n",
    "            self.betas['rep_cocos'] = self.rep_cocos\n",
    "            self.betas['included_voxel_idx'] = self.included_voxel_idx\n",
    "            self.save()\n",
    "            \n",
    "    def load_train_test_data(self, train_imageset, test_imageset):\n",
    "        print('loading train and test data')\n",
    "        self.image_data, self.brain_data = nsdorg.get_NSD_train_test_images_and_betas(subj = self.subj,\n",
    "                                                                                      space = self.space,\n",
    "                                                                                      subj_betas = self.betas,\n",
    "                                                                                      rep_cocos = self.rep_cocos,\n",
    "                                                                                      train_imageset = train_imageset,\n",
    "                                                                                      test_imageset = test_imageset,\n",
    "                                                                                      mean = False)\n",
    "    def get_ncsnr_mask(self, threshold):\n",
    "        self.ncsnr_threshold_ = threshold\n",
    "        self.mask = self.ncsnr[self.included_voxel_idx['full']] > self.ncsnr_threshold_\n",
    "\n",
    "    def save(self):\n",
    "        np.save(self.savefn, self, allow_pickle=True)\n",
    "\n",
    "\n",
    "#class NoiseCeiling: \n",
    "#    def __init__(self, Br, \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "5c37f546-41ab-44a9-9453-bc3828e6e274",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "betas already saved. loading...\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAACN0AAAROCAYAAADqutahAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADc1klEQVR4nOzdd5hU1fk48HeXDkoTEWygFBUVu6AGUWPXKPYSEWyx12iMJVFjTLB8bSkaYwV7iViwoQIKgg2xN1QssSIdlDq/P/xhgLmzzOzO7pT9fJ5nnwfOnXvuO3duPfe951SkUqlUAAAAAAAAAAAAWassdAAAAAAAAAAAAFBqJN0AAAAAAAAAAECOJN0AAAAAAAAAAECOJN0AAAAAAAAAAECOJN0AAAAAAAAAAECOJN0AAAAAAAAAAECOJN0AAAAAAAAAAECOJN0AAAAAAAAAAECOJN0AAAAAAAAAAECOJN0AAECZ6dy5c1RUVCz1N3DgwEKHBdWy7LZcUVERF154YaHDKjrvvPNODBo0KPbZZ5/o3r17tG/fPpo0aZK4/qZNm1bocKlHRo4cmbgdjhw5stChFXVsAAAAQGloWOgAAAAAgOp5991345RTTomnn3660KEAGYwZMyaGDRsWL7/8crz//vsxZcqU+PHHH2OFFVaI9u3bx3rrrRd9+vSJvfbaK7p3716nsaVSqXj//ffjlVdeiY8++ihSqVTaZwYOHBidO3eu07hKzSeffBJvvPFGfPzxx/HVV1/F7NmzY+7cudGsWbNYYYUVYo011oguXbrEpptuGiuvvHKhwy1ac+fOjddffz0mTpwYn376aXz//fcxZ86cmDdvXrRq1Spat24drVu3jlVXXTU23XTTWGuttQodcsFMmzYt3n///fj888/j888/j2+//TbmzJkTc+bMiUaNGkXr1q2jVatWsfrqq8dmm20W3bt3j8rK2n//dtKkSTFmzJh466234q233oqJEyfG1KlTY9q0aVFRURFt27aNNm3axGqrrRa9evWKrbbaKn7xi1/EiiuuWOuxFatFixbF66+/Hi+99FK8/fbb8dZbb8Vnn30W06ZNixkzZkTTpk2jTZs20aZNm+jatWv07t07ttpqq+jdu3c0aNCgzuL86KOPYuTIkfHSSy/FhAkT4rvvvotp06bFzJkzo1mzZtG6deto06ZN9OjRI7bYYoufY6yoqKizGAEACkXSDQDAEmbMmBFXXnnlUmVrr712HH744VXO9+yzz8Zzzz23VJkHFADUpqFDh8Zhhx0Ws2fPLnQoQII77rgjLrnkknj33XcTp0+fPj2mT58eH374YTz88MNx1llnxU477RR//vOfY8stt6yVmCZOnBivvPLKz3/jx4+PmTNnVjnPdttt55p2GYsWLYpnn3027rrrrnjiiSfiyy+/zHreddZZJ/baa6849NBDY+ONN652DIMGDYr33nuv2vPXlltvvTWnz3/44YfxwAMPxMMPPxyvvvpqzJs3L+t5V1pppdhss81ijz32iIMPPjjat2+fY7SlYfr06TF27NgYM2ZMvPLKK/Hmm2/Gf//735zqWGGFFWLnnXeOI488Mnbddde8JWvMmTMnHnvssXjsscdixIgRMWnSpCo//+WXX8aXX34Zb7/9djz11FM/x9a/f/846aSTokePHjWOaejQoTF06NAa15OLK664Itq1a5f157/55pt48MEH46mnnopRo0bFlClTMn52/vz5MXPmzPjss8/i9ddfjwceeCAiIlZfffU47rjj4phjjqm1bT+VSsV9990X1113XZW9wM2cOTNmzpwZn3/+ebzxxhtx9913R0REt27d4uijj47jjz++XidWAQDlryKV9AoLAEA9NWzYsNhzzz2XKvvtb38bV1xxRZXz7bHHHvHYY4/9/P+KioqYPHlytG3btlbirI5bb701rRG0c+fOZT3s0IQJExIbXE877bRo3bp1ncdTVzp37hyffvrpUmUDBgzI+SEIFIOkt2MvuOCCej/E1Jtvvhm9e/eOOXPm5Dzv1KlTy/oYSHEZOXJkbL/99mnlI0aMiO22267uA1pCbcX27bffxiGHHBLPPvtsteavrKyM0047LS699NJo2LBm78tNmDAh7r777njllVfi1VdfrdbwcsXwWxWLhQsXxuDBg2PQoEHxwQcf1Li+bbfdNv74xz/GL3/5y5zn3W677WLUqFE1jiHfsm1qfuaZZ+Lyyy+PJ598Mi/LbdiwYey0005x7LHHxt57752XOovBq6++GltuuWUsWrQob3Wuueaacc0110S/fv2qXcfo0aPj2muvjWHDhlXrWiRJRUVFnHrqqfGXv/wlmjVrVu16LrzwwrjooovyElO2Pvnkk6ySE2+77ba45ZZb4vnnn8/bb7riiivGVVddFUcddVRe6lvsww8/jGOOOSYvx5nVV189rr/++thjjz3yEBkAQPHR0w0AwBKW7a0mIpb7kGHhwoUxevTopco22GCDokq4ifgp6WbZBrO+ffuWfdJNUoPrwIEDPXAGStrJJ5+c8SHXGmusET179ozWrVsnPrBv3LhxbYcH9daHH34Yv/zlL+Pzzz+vdh2LFi2KK6+8Mt5888146KGHavTweejQoXHppZdWe37+57XXXotjjjkmXn311bzV+dxzz8WOO+4YBx54YFxzzTXRoUOHvNVdrD766KM47bTT4tFHH81rvQsWLIjHH388Hn/88ejdu3dceumlse222+Z1GYUwf/78vCbcRER89tlnsc8++8Tee+8dt99+e6ywwgo513H33XfHfffdl9e4UqlUXH311fH444/H0KFDY911181r/bWpUaNGWX3u8ssvj7fffjuvy545c2YcffTRMXTo0Ljrrruq9Xsua8SIEbHnnnvmLaHqiy++iD333DMuuuii+OMf/5iXOgEAiomkGwCAJSybdFNZWRl9+vSpcp7x48fHjBkzlirr27dv3mMDgIifEgqT3jru1KlT3HrrrXqkgAL58ssvl5tw07179+jRo0e0aNEivv/++3jttdfim2++Sfzs8OHDY//9949HHnkkKisraytssnDDDTfEySefnNPQR7m4995747nnnov7778/ttlmm1pZRjG4884749hjj41Zs2bV6nLGjRsXffv2jUsvvTR+97vf1eqyStlDDz0UO+20Uzz++OO18kJCZWVlrL322tG+ffto3759NG3aNCZPnhzvv/9+lcfJ999/P7bddtsYPXp0dO/ePe9x5VvPnj1jtdVWy1t9TZs2XWq9LVy4MCZPnhyvv/56lb2VPfroo7HTTjvFs88+W6Nkzeeff365CTcNGjSIDTbYINZYY41o1apVzJo1K7755puYMGFC/Pjjjxnnu+CCC6Jx48bx+9//vtrxAQAUI0k3AAD/35w5c9LeXN14442jVatWVc43YsSItDJJNwDUlocffjix/P7774/NN9+8jqMBIn7q+fCQQw7J+CD5wAMPjAsvvDDWW2+9pcpTqVQMHz48zj333MQeVB577LG4+OKL44ILLqiVuFm+3//+98vtLahHjx6x9957x7bbbhvrrrtutGvXLpo1axazZ8+Or776Kt5+++0YMWJE/Oc//4kvv/wysY6vv/46tt9++7j77rtj3333rY2vUlDnn39+XHLJJVV+pnnz5rHLLrtEnz59YpNNNom11lor2rZtG82bN4+5c+fGrFmzYtKkSfHBBx/E6NGj4+mnn46PPvooY32Z1nWpW2211WLrrbeOTTbZJLp16xbdu3ePlVdeOVZcccVo2rRpzJw5M6ZMmRJvv/12jBs3Lu6+++745JNPEusaN25c7L///vH000/nJbauXbtGv379om/fvvGLX/wiYzLPRx99FNdff31cf/31iUlY3333Xey5557x2muvRYsWLfISW205+uijazR/RUVFbL311rHbbrvFtttuG7169UrslXDRokXx0ksvxVVXXRX3339/Yg9I48aNi6OOOiruvPPOasUye/bsOOywwzIm3HTt2jXOPvvsOPjggxN71Jk/f348/vjjcemll8YLL7yQWMd5550XO++8c2y66abVihEAoCilAABIpVKp1PDhw1MRsdTfGWecsdz5dtttt7T5vvnmmzqIODd9+/ZNi7Nv376FDqtW3XLLLWnfOSJSn3zySaFDq1WdOnVK+84DBgwodFhQLUn78AUXXFDosApq1113TVsnm266aaHDgkQjRoxI3I9HjBhR6NDy6tprr038npWVlakbbrhhufPPmzcvdcQRRyTW0bBhw9Rbb71VrbguuOCCxDobNWqU2mSTTVJHH3106vrrr0+98sorqW222aZe/Fa5+P3vf5+4Thb/9e7dO6f1M3/+/NSdd96ZWmuttTLW2bBhw9TQoUNr70v9f0nXi7V1nXzGGWdUuR7XWmut1D//+c/UrFmzcq77xRdfTB111FGpxo0bp9V76qmn5v271LWxY8emWrRokdp7771T//73v1OTJk3KuY5FixalhgwZklpllVUy/gY33XRTTnWeeOKJP8/bpEmT1OGHH54aO3ZszrF99NFHqc033zxjXNncj9eFBx54IDG+pk2bpqZMmZJ1Peuvv/7P87Zr1y71+9//vlr73PDhw6v8PR9++OGc60ylUqlzzz03Y52HHnpoavbs2VnVs2jRotQll1xS5bETAKCc6JsWAOD/SxqqY3lDdCxYsCBGjx69VNm6664b7du3z2doAPCzDz74IK1ss802K0AkQETEtGnT4o9//GPitMsuuyyOOeaY5dbRqFGjuOmmm+JXv/pV2rQFCxbE6aefXu34GjZsGD179owjjzwy/vnPf8aLL74YM2fOjPHjx8e///3vOPbYY2OzzTaLhg11iL2kW2+9NQYNGpQ4rWHDhnHZZZfFCy+8kNOQfg0bNoxDDjkk3nrrrTjqqKMSP7NgwYL49a9/HW+++WZ1wi461157bVx55ZWJ0yorK+Pcc8+Nd955J44//vhq9Wiy5ZZbxo033hgff/xx9O/fPyoqKmoaclHZaKONYvLkyTF06NA4+uijo1OnTjnXUVFREYcddli88MILGee/4IILIpVK5VRv06ZN4/TTT4+PP/44brvttujdu3fOsa299toxYsSIjD31/eMf/4ivvvoq53rz7cYbb0ws33fffaNNmzY51dWxY8e4+uqr47PPPou//vWv0blz55zj2XHHHePZZ5/NuOzzzz8/5zoXLVqU8XvuvPPOMXjw4GjevHlWdVVUVMS5554b55xzTuL0cePGxVtvvZVzjAAAxUrSDQDA//fcc88t9f/Kysro06dPlfO8+uqrMXPmzKXKDC0FQG2aOnVqWlm7du0KEAkQEfHPf/4zpk2blla+7bbbxm9/+9us66moqIibb745cTiW4cOHx8svv5xzbCeeeGLMmDEjXn/99bjpppvi+OOPjy233DKaNGmSc131yTvvvBPHHXdc4rSmTZvGgw8+GGeddVa1EzyaN28eN954Y/z5z39OnD579uzYd99944cffqhW/cVi3LhxccYZZyROa968eTzyyCNxySWXRNOmTWu8rNVWWy0GDx4czz77bKy++uo1rq9YNGvWLC/rJ+KnBJc77rgjcbv94osvYsyYMVnXtfvuu8eHH34YV155Zay66qo1imuFFVaIBx98MDGhY+7cuXHHHXfUqP6a+uKLL+LJJ59MnJZNUuWSzjnnnJg4cWKceuqp0axZsxrF1aNHj4xJMm+88Ua88sorOdX3wgsvxLfffptW3rBhw/jb3/4WDRo0yDnGCy64IGOi14MPPphzfQAAxUrSDQBA/NSY99JLLy1VttFGG2Ucg36xkSNHppVJugGgNs2YMSOtrHHjxgWIBFi0aFH885//TJx26aWX5lxfu3bt4uyzz06cdu211+Zc38orr1zjB7v1zaJFi+LII4+MuXPnpk2rqKiIwYMHx5577pmXZZ133nkZE7MmTpxYrd4qisUPP/wQAwYMiIULF6ZNa9y4cTz88MOx++6753252223Xbzxxhux00475b3ucrDNNtvEjjvumDgtU2JJkt133z2vyU2rr756nHTSSYnTHnvssbwtpzpuvvnmWLRoUVp5165dc+rpKiLi17/+dda9xWRj3333jS233DJxWq7rLVOSzi9+8Yvo3r17zrFFRDRp0iT69++fOG38+PHVqhMAoBhJugEAiIgXX3wxfvzxx6XKsmlAS0q62XbbbfMUFQCkS3qACRTGs88+G//973/Tynv16lWtoVYiIo499tjEnmgefPDBmD17drXqJHuDBw+OF198MXHab37zmzjggAPyurxLL700Ntlkk8Rp1157bUycODGvy6sr11xzTeJwiBERV155Zfzyl7+stWW3adMmHnvssbz/VuUiU9LYF198UceRLC3T71XI5IxUKhW33HJL4rRMQ8TVtXytt0zDeC2v99/lyfRSUjEMGwYAkC8GawYAiPShpSKW32PNggULYvTo0UuVdenSJVZbbbW8xlZdgwYNivfee+/n/y/57yXLBg4cmHWdV1xxRbWGMJk6dWo8+uij8dxzz8Wbb74ZkyZNihkzZsS8efOiefPm0a5du+jSpUtsscUWseOOO0bfvn2r1X316NGjl+piO9NDijPPPDNWWGGFrOrs169f9OvXL+sYpkyZEs8991yMHz8+3nvvvfjggw/iu+++i5kzZ8YPP/wQLVu2jLZt20bbtm2jZ8+e0adPn9h2222jc+fOWS+D2jN//vwYPnx4PPvss/Hqq6/Gxx9/HFOmTIkffvghmjRpEq1bt4611lorNtpoo9huu+1i9913jxYtWhQ67Drx1VdfxbBhw2LMmDHx7rvvxqeffhozZsyIuXPnRrNmzaJ9+/bRtWvX6NWrV+y2226x1VZbFTrkjD7++OMYNmxYvPbaa/HGG2/Et99+GzNmzIhZs2ZF48aNo3nz5rHCCivEGmusEZ07d45u3bpFr169Ysstt4w2bdoUOvw6VQr7xMKFC+OZZ56Jp556KsaPHx8TJ06MqVOnxg8//BCtW7eOddZZJ6655prYfPPN6zSuefPmxZNPPhljx46NCRMmxMSJE2P69OkxY8aMWLBgQTRv3vznc2Dnzp2jc+fOsfHGG0evXr2iR48eUVlZ/96T+vHHH2PYsGHx2GOPxeuvvx6TJk2KmTNnRkVFRbRt2zbWWWed6NOnT+y///7Rs2fPQocbEZmHxzjssMOqXWebNm1i9913T6t79uzZ8eSTT8a+++5b7bqp2oIFC+JPf/pT4rSOHTtWq/ei5WnQoEHccMMN0atXr7TeNBbHM3jw4LwvtzZNnz49LrvsssRpO+ywQ5x44om1HkPDhg1jm222qfXllKJMw/18/fXXdRzJ0jbddNNo0KBBWnLx9OnTY/r06dGqVas6j+npp5+OSZMmpZU3bNgwp/vo2pSpp5tPP/00p3qmTJmSWN6hQ4ecY1pSx44dc1oeAEBJSgEAkNpxxx1TEfHzX2VlZWrKlClVzjN27Nil5omI1JFHHllHES9f37590+Kr6d8nn3ySUwzvvfdeqn///qnGjRvntJyOHTumBg0alJo1a1ZOy7vlllvy/p0vuOCC5S73rbfeSv3hD39IbbzxxqmKiopqLWeXXXZJjRw5Mqfvm0mnTp3S6h8wYEBe6s7G6NGjE7/jiSeemNflLFiwILXqqqumLadDhw6p+fPn51TX999/nzrvvPNSbdu2zel3a968eer4449PffbZZzkt78Ybb0ysb8UVV0x98MEHOdW1rGnTpqXWXnvtxPrPPPPMnOt7+umnUzvvvHOqsrIyp3XTrVu31M0335xauHBhjb5PdffLJA8//HBqm222qfbxoKKiIrXVVlulrrrqqtSMGTNq9L2yMWLEiLwez3I5DtT1PpHtdx8xYsTPn1mwYEHq2muvTa2xxhrLjevBBx+sUTy5mDx5curUU0/Ned0t+bfSSiuljj766NTo0aOzWmY266u6kq4n+vbtm/X82f6WV1xxRap9+/ZZr6Ptttsu9corr9Tou40aNSrVpEmTtL9Ro0ZlXUe3bt0S4/v4449rFFum88Rxxx1Xo3qrkunaMR/bUal44IEHMm5zd955Z60u+/jjj09cbqNGjVLffPNN3peXdL0Ykfv1fpJrrrkm43n09ddfr3nw1Mhjjz2W+PvstddehQ4t1aFDh8TYPv/884LEc+CBBybGs/feexckniTvvfdeYoxdunTJqZ4zzjgjsZ5//OMfNYrvrbfeSqx3s802q1G9AADFpP69NgUAsIwFCxbE2LFjlyrr2bPncnszMLRUZgsXLow//vGPseGGG8aQIUNi3rx5Oc3/1Vdfxe9///vYYIMN4plnnqmlKPNjq622ig022CAuvvjimDBhQqRSqWrV8+STT8Z2220X++yzT8ycOTPPUdatbbbZJrp165ZWftddd8XcuXPztpynnnoqvvzyy7Tyww8/PBo2zL5Tz/vuuy/WXXfduOSSS3J+43LOnDlx3XXXxXrrrRd/+9vfsp7vqKOOiv79+6eVz5w5Mw444IC04e5yceSRR8bHH3+cVr711lvHX//616zr+eKLL2KvvfaKHXfcMZ566qm0t++X58MPP4wjjzwytt5668R46tLUqVNj7733jr322ivGjBlT7XpSqVSMHTs2Tj/99Hj77bfzGGFxKcQ+kasvvvgievfuHaecckp8/vnntbacXN17770/96xTkze4v//++7jxxhvj4osvzmN0xembb76JbbbZJs4888z49ttvs55v5MiR0atXr7jkkkuqvexFixbF3Llz0/6yPd5988038eGHH6aVr7nmmrHWWmtVO66IiO233z6xPKl3RvJnyR4Tl7TKKqvU+lBFJ510UmL5/Pnz49Zbb63VZefbDTfckFi+2267FU0vVcuqqKhI/Eu65yt1SUPiRdS8R5N8mD9/fmJ548aN6ziSn87FQ4cOTZx2zDHH1G0wVcjXOlt99dUTy2vaA1KmYaTWWGONGtULAFBMJN0AAGWrc+fOGRtPl/xr1KhRzJ49e6l5J0yYsNz5zjnnnLRlDhw4cLnzXXjhhXW0Bgpj1qxZsdtuu8XFF1+csQEwW5MmTYpddtmlVh/c1lTSw7aaGDp0aGy11VaJ3ZiXkiOOOCKtbMqUKfHwww/nbRmZHkAlLTuTc845Jw488MD47rvvahTL7Nmz45RTTolf//rXsWDBgqzmWZyYsKzXX389TjnllGrFcfXVV8d//vOftPKVVlop7r777qyTkUaOHBmbbrppPPLII9WKY0kvvvhibLHFFmnJjXVl8uTJscMOO+R12ytnhdwnsvXJJ59Er1694pVXXslrvTX173//Ow4++OD4/vvvCx1Kyfjmm29i6623jhdffLFa8y9cuDDOP//8OOaYY6qd9FoT48ePTyzPx1Bma6+9drRt2zat/P333485c+bUuH7SzZgxI55++unEaQMGDMgpobc6evToEb17906clnRuL1bvv/9+xsTUI488so6jIclTTz2VWL711lvXcSRLmzp1auI5tGHDhonHw9o2ePDgxJdHVl999dh1113rPJ5MMt2PrrLKKjnVk2k4tueffz7nmJY0atSoxPJf/OIXNaoXAKCY1O7dIgAA9crcuXNjjz32qPIt7IqKithggw1itdVWi9atW8fXX38dEydOjC+++CLx8wsXLvw5AeHkk0+ulbhrS4cOHWLttdeOVq1aRevWrWPBggUxffr0+OSTT2LixIkZHxC+/fbbse+++8bYsWOjSZMmdRx1fhx++OFx/vnnp/UWcOutt+blTfGpU6fGQw89lFbeu3fvWHfddbOq4+yzz47LLrusys+stdZasdZaa8Uqq6wSU6ZMic8++yzefffdjJ+/8847Y968eXHvvfdGRUVFlXW3aNEi7r///thiiy3SHqD++9//jr59+8avf/3rrL5LxE/JLb/73e/SyisqKmLw4MFZv036xBNPxD777FNlbzstWrSInj17Rrt27WLFFVeMKVOmxKeffppx3UyZMiV22WWXeOGFF2KDDTbI7gvlyYABA2LChAkZpzdt2jS6du0anTp1ihVWWCEaNmwYM2bM+HlfLaZeVGpbofeJbMyePTt23XXXxF6u1lhjjejSpUu0b98+Kioq4ptvvonXX389pk6dWuPlLs+LL74Yxx13XJWJH6uuump07do12rVrF82bN48ff/wxpk+fHpMnT4733nsvfvjhh1qPs5gsWLAg9t5778SesDp37hxrr712tG/f/ufjy/vvv5+xrhtvvDFWWmmlGDRoUG2GnOaNN95ILF9//fXzUn+PHj1i9OjRS5UtXLgw3nnnnbwk9rC0p59+OmPC+MCBA+skhoEDB8a4cePSyl9++eWYPHlytGvXrk7iqIlhw4Ylljdr1iz22GOPOo6GZX3wwQeJichNmjSJ3XbbrQAR/c+IESMSy7t161brSW9JbrrppsTygQMHRoMGDeo4mswyrbek5P6qbL755tGlS5f46KOPliofPXp0fPDBB9G9e/ecY5s7d27cfvvtaeUNGjSI/fffP+f6AACKlaQbAIAytWxX6Nttt13aW2Z9+/bNa5fpJ510UsaEmxVWWCHOPffc6N+/f2LX1WPHjo1rr7027r777sT5Tz/99OjRo0f88pe/zLj8gQMHLvVQ5NZbb03s9eSTTz6Jzp07V/1lqmHNNdeMfv36xW677RabbrpptG/fPuNnp02bFv/5z3/in//8Z7z66qtp01977bU488wzi7qXn6qsttpqsfPOO8cTTzyxVPmTTz4ZX331VXTs2LFG9WcaqirbN6jvuOOOjMkFFRUVccwxx8Txxx8fG2+8cdr0jz/+OG6++ea4/PLLE99+vf/+++Oiiy7KqlerHj16xHXXXRcDBgxIm3bcccfFZpttllUS0dSpU+Oggw5KfFj4u9/9Lnbffffl1hHx03a33377JSbcNGzYMA4++OA4/vjjY8stt0x8+PHf//43brnllrj88stjxowZS02bOXNmHHLIIfHyyy9H06ZNs4qnph566KF47LHHEqftuuuucdppp8V2221XZXLb9OnT49VXX41hw4bFI488kvferarSoUOHxG3jtttuSyvbaKONErfXJVX1RnGx7BPLc+6558YHH3zw8/8bN24cJ598chxxxBGJiQ4LFy6Mp556KlZdddUaL7sqxx9/fOKQRO3atYszzjgjDj744CqHG1q0aFFMnDgxRo4cGQ8//HA888wzNRpmrhRceumlaT3cHHHEEXHSSSfFpptumvb5999/P2644Ya45pprYuHChYn17bLLLhmHZaoNmYbO69q1a17q79q1a1rSzeLlSrrJv0zXsO3bt8/54XV19enTJ7F80aJF8cILL8Ree+1VJ3HURNI2G/FTLxp1df4n2dSpU+PQQw/NeA1d1b1LXRg8eHBied++fes4kohx48Yl9thUUVERRx11VJ3Hk8ncuXPj3nvvTZyW63qrrKyM3/72t3HCCScsVb5gwYI4+eST47HHHss52eiiiy5K7MH1kEMOiU6dOuVUFwBAUUsBAJSpTp06pSKi6P4uuOCCgqyPvn37psXSt2/fvNU/bNiwjN+5V69eqUmTJmVVz4MPPphq0aJFYj1rrLFGaubMmVnHdMsttyTW88knn1TzW6ZbeeWVU/369UuNGTOmWvMvXLgwdc0116QaNmyYFmdlZWXq448/zrnOpG1/wIAB1YqvJu69997E9X/ppZfWuO7NN988rd5mzZqlpk+fvtx5v/zyy1SrVq0SY1t55ZVTo0aNyiqGt956K9W9e/fEeho0aJB69dVXs/4+Rx11VGI9G2ywQWrOnDlVzrto0aLUr371q8T5f/GLX6Tmz5+fVQyzZ89OdenSJbGeDTfcMPXOO+9k/X2++uqrxN8oIlInnXRS1vWkUqkaHUf32muvxPmvu+66nGJY0siRI1P9+vVLvfTSS9Wuo6byfW4pxn1ixIgRyz2frrfeeqkPP/ywul87b8aPH58Y38Ybb5z66quvqlXnlClTUoMGDUodffTRWX0+0/oaMWJEtZa/pJpeP2TzW7Zs2TL1xBNPZFXfSy+9lFpttdUS6+natetyj5nZxJbtett5550T53/mmWeyjqEq5513XmL9gwYNykv9y0r6rfO1HZWCbbfdNvH777bbbnUWw8KFCzNeB+f7HiLTvVJNr5PXXHPNxHr/8Ic/5CfwWpLp+FQu2/+IESNS66yzTuJ3XHPNNVPTpk0raHxvvfVWqrKyMjG+p59+us7jyXRtvuOOO9Z5LFX55z//mRhns2bNUjNmzMi5voULF6b69OmTWOevf/3r1OzZs7OqZ9GiRalLLrkksZ5VVlkl9d133+UcGwBAMdPTDQBQtvbff/+YPHlylZ/57LPP0rpj3nDDDRPfsF7SsGHD0uo+7LDDsnrza3k9EZSihQsXxmmnnZY4rWfPnvHEE09E69ats6qrX79+8cADD8SvfvWrtF47Pv/88xg0aFD8+c9/rmHE+fPSSy/VqNecysrKOOWUU6JDhw5x8MEHLzU0yaJFi+Jvf/tbXHnllXmItO7ttdde0bZt25gyZcpS5bfcckviMEjZevvtt+OVV15JK99vv/2iZcuWy53//PPPj+nTp6eVt2rVKp588snYZJNNsopj/fXXj+HDh8c222yTNjza4mHRMr3tvay//e1v8fLLL6cNVfLWW2/FiSeeGDfffHPGea+44op45JFH0srbtWsXd999d9bd8V944YVp3clHRGy77bbxxBNPRLNmzbKqJ+KnHlpGjRoVffv2TfutrrvuujjrrLNizTXXzLq+6pg7d2489dRTaeWHHXZYHHfccdWut2/fvgV547o2FeM+sTzrrbdejBo1KlZeeeW81FcTSftfZWVl3HPPPdGhQ4dq1dmmTZs4++yzaxpaSWjSpEkMHTo06x5qtthii3jiiSeiT58+MW3atKWmTZw4MS6//PL44x//WAuRpvv2228Ty6v7uy8rU69wmZZLzST1ahHx0zZXVyorK2OTTTZJPFZmiq+YzJo1Kz777LPEaXU9vGR9lUqlYvbs2TF9+vR4//3345VXXon77rsv8do5ImKVVVaJxx9/PFq1alXHkS7ttNNOS+wxbv31148ddtihTmOZNWtW3HPPPYnTjjnmmDqNpSpTp07N2IvgwIEDY8UVV8y5zsrKyrj//vtj++23j3feeWepaXfccUe89NJLcfbZZ8dBBx0UK6ywQtr88+fPjyeeeCIuvfTSGDNmTNr01q1bx7Bhw0piqDwAgFxIugEAytYVV1yx3M/86U9/Sku6+f3vfx+HHnpoxnkWLlwYK6200lJlXbt2jSFDhlQv0DJw3333JQ650rRp0xg6dGjWCTeL7bLLLvHnP/858YHj3/72t/jd736XVXJFXcjXMFUHHnhgPPbYY2nDxtx8881x2WWXZZ04UUyaNGkShx56aPz9739fqvy9996LcePGRe/evatV7y233JJYns3QUp9//nnGffX666/POrlgsTXXXDPuu+++2HrrrZdKmIqIGDNmzM+JJ8vTrFmzuO+++2LzzTePmTNnLjXtlltuib59+yYOM/TCCy/Eueeem1ZeUVERt99+e6y22mpZfY///ve/iUOZrb322jF06NCcEm4Wa968edx3333Rs2fPpb7TwoUL49prr83qGF0TX375ZeLwPIcffnitLrfUFOs+UZUGDRrEkCFDiiLhJiISk9V69+4d3bt3L0A0pefCCy/MeUioDTbYIP75z38mXq/961//inPPPbdOzpvff/99Ynmu1z2ZZHoInmm5VN8PP/yQcb3W1dBSSy4vKenm888/r9M4qqOqGKsaYo/q6dq1a+I5KFu/+MUvYvDgwQX/bf7973/H008/nTjtwgsvjIqKijqN5+67745Zs2allbdr1y769etXp7FU5aSTTkpMwmzWrFn8/ve/r3a97du3j1GjRsXAgQNj2LBhS0378MMP4+ijj45jjz02Ntxww1hjjTWiZcuWMWfOnPj6669jwoQJ8cMPPyTWu8EGG8Rdd90lAQ8AKEuVhQ4AAKCQlk24iYjlPvh57bXX0noE2G677fIZVsn597//nVh+9tlnV7sR9/TTT4911lknrXzGjBkZ3zwsdeedd15a2fTp0+P1118vQDT5ccQRRySW33rrrdWqb8GCBXH77benlXfu3Dmr/fDWW29N60Ep4qd9+OCDD65WTL179874PW+44Yas6+nevXvGz59wwglpb7hPnjw5DjrooFiwYEHa588555zYZZddsl72ddddl5igcuWVV0abNm2yrmdZnTt3jhNOOCGt/MYbb4y5c+dWu95sfPPNN4nltd3DTqkp5n0ik6OPPjo222yzGteTL0nbmu0sO126dInT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f5deemnceuutS/0NGTIkHnnkkRgzZkxMmzYt3nzzzTj77LNj5ZVXTpv/xx9/jDPOOCOOO+64Ok28+e1vf5vYe2XETwm7V111VZ3FsqQHH3wwvv/++7TyFVdcMQ466KACRPQ/P/zwQ+y5557x+uuvJ06/7LLLYr/99svLsoYPHx6bb7554rIqKipi9913j+uvvz7eeOON+Pbbb2PevHkxZcqU+PDDD+Ouu+6KI488MvFY8P3338c+++wTl1xySV7iBAAoJvnp7xYAoMTMmjUr7WFMz549Y6WVVqpyvqQeIbbffvt8hlZykh5YN27cONZdd9281J/poVyxPShPpVJxzz33xC233BLPPPNMXt9GLvWkm4ifEmP+85//LFW2aNGiGDx4cJx33nlZ1ZHUON+qVavYd999s5o/0zbTs2fPrOZfnnxvq/vuu2+ceuqpcc011yz3s9tvv31ccMEF1VpO0hA4jRs3jmOPPbZa9SV57bXX0sqmTJmSt/ozOeuss+Lf//53zJw5M23axx9/HL/73e/id7/7XWy00Uax/fbbx3bbbRdbb7114oOpclRq+0RE5mHDCql9+/Zx0kknxeWXX542bcGCBXHPPffEPffcE61atfp5O+vTp09stNFGeelRqFTlazvbcMMNE8u/+OKLvNRflcaNGycmEsydOzcvvaNkSlJo0qRJjetmac2bN884bdmE+9qWaXmlnnQze/bskvgO5aSioiI22GCDGDRoUJxzzjlxxhlnJCZ133DDDbHyyivHn//851qP6aKLLoorr7wycdoOO+yQ8zCp+ZRpCNJDDjkkWrRoUcfR/M+8efNin332Setxd7Fzzz03zjzzzLws68UXX4y99947cfiqzTffPG699dZYf/3106a1adMm2rRpE127do2DDz44Bg0aFL/97W8TXyg5//zzo1WrVnHSSSflJWYAgGIg6QYAqJeef/75tLeQlze0VERy0k197+nmm2++SStr06ZNNGyYn0vN9u3bJ5Z//fXXeak/H1577bU44YQTYty4cbVS/5w5c2ql3rq06667RocOHdJ+t1tvvTWrpJs33ngjMXHj4IMPzvoBTtK2GpF5G8vVSiutFJWVlbFo0aKlymuyrV522WUxduzYKofjWWWVVeLOO++s9gOKpAfTP/zwQ9x2223Vqi9bdZF006FDh7jjjjtin332qTIR7vXXX4/XX389rr766oiI6NatW2y//fax/fbbxy677BJt2rSp9VgLoRT3iUxDZRTan//85xg7dmzGB2IRPz1IHzp06M9DK7Ro0SK22Wab2H777WPHHXeMzTffvI6iLQ5JPWBVR6YkubpIWG3VqlViUt/MmTNjhRVWqHH9SXUvXi75VdVxr66TnzMtb5VVVqnTOKqjqhi/+eabvO335K5Vq1Zx0003RZcuXRKvvQcNGhR77rln9O7du9Zi+L//+7+48MILE6dttdVW8dBDD1XZ61Rt+vTTT+OZZ55JnFbIoaUWLFgQBx98cDz55JOJ008++eS89RwzZ86cOOywwxITbvbZZ5+4++67s+5pbeWVV47BgwfHhhtuGL/73e/Spp955pmx3XbbxQYbbFDjuAEAioHhpQCAemnZoaUilt9jzcKFC9Mepq2zzjpF+dZ9XZo9e3ZaWT4fimZ6sJS03EJ44oknYuutt661hJuIqNPu3mtLw4YN4/DDD08rnzhxYpUPqRe75ZZbEsuzHVoqIvM2k6/ttaKiIrGummyrjRs3jnvuuSdjjwmVlZVx55131ug4VNdv8C+W6WFyvv3qV7+Kxx9/fLk9mS3pww8/jBtuuCEOOeSQ6NChQ+y7777xxBNP1GKUhVGK+0Q+EhlqQ+PGjePJJ5+Mgw8+OOt5Zs+eHU899VScc845scUWW0S3bt3ioosuismTJ9dipMUjX9tZpnrqIlEi03ElX8vOVE8uxzOys/LKK2fsQaguek1a0n//+9/E8tVXX71O46iOqmKs6/VIsnPPPTcOO+ywtPKFCxdWu9fEbFx33XUZe2PZdNNN4/HHHy/oOf6mm25KSxKO+KlXti222KIAEf3UK+jhhx8eDz74YOL0o446KqseMbN17bXXxsSJE9PKe/bsGXfccUe1hjY866yz4sgjj0wrnzt3bpx11lnVihMAoBjp6QYAKBvvvfdeDBo0KKvPDh8+PK3stttuiwceeCDjPLNmzUp7OP3jjz/GwIEDl7u8K664omzf7Jw3b15aWT67385UV9Jy69pzzz0X/fr1yzj8w2LNmjWLTp06RYcOHaJVq1bRokWLaNiwYVRUVKR9dvTo0fHRRx/VVsgFdcQRR8Rll12WVn7LLbfEL37xi4zzzZ8/P+6444608h49ekSvXr2yXn6mbSbf2+uyD0lruq3ef//9MX/+/MRpjRo1irZt29ao/h9//LFG85eCnXbaKT744IP461//Gtdff33MmjUr63nnzZsXDz74YDz44IPRu3fv+Pvf/x6bbbZZLUZbd0p1nyhWzZs3j7vuuisGDhwYf/jDH9KGsVyeiRMnxoUXXhhXXHFFnHHGGXH++efnZYiiYlXVcD65yLS95rKfV1emXj2+/vrrWG+99Wpcf6ZeofLVGxVL69KlS7zzzjtp5a+88kqdxpFpeV27dq3TOKpjlVVWiRVXXDExsfbdd9+NXXbZpQBRsazLLrssHnjggbQeTZ566qmYOHFi3re1m2++OU488cTEaeuvv348+eSTBe3Ba9GiRRkT/AvVy00qlYqjjz467rrrrsTphxxySNxwww2J95PVsXDhwvj73/+eOO3SSy+t0dBwgwYNinvvvTftvPzkk0/Ge++9l7dhqQEACknSDQBQNr7++usaDYdSVcJNJp9++mlWy7zwwgvLNummcePGaUkn+eyFJlNd1XnTLp/mz58fxx57bMaEm1/+8pdx8MEHx7bbbhvdunXLukF04MCBZZt0s+6660bv3r3TegW677774m9/+1vGB7DDhg2L7777Lq08l15uIjJvM7Nnz85bQ3/S9lqTbXXs2LFx7rnnZpw+d+7cOPDAA+PVV1+NFVdcsVrLaNCgQeKbveWmbdu2cfnll8eFF14YDzzwQAwdOjRGjRqV0zBX48aNi6233jr+8Y9/FHSogXwpxX2iFOyyyy6xyy67xBtvvBG33357DB8+PN54442s97NZs2bFn/70p3jqqafi4Ycfzjh8UqnL19CJmZJr6qLHhM6dOyeW56tHj0w9nqy11lp5qZ+lbbLJJgVPuvn2228zbj+bbLJJncVRXRUVFbHxxhvH888/nzZt/PjxBYiIJB07dowdd9wxHnnkkbRpzz77bF6Tbu6444445phjEnvu7N69ezz99NMFv09+4oknEve7pk2bJvYKVBdOOOGEjIlA++67bwwePDgqK/M3iMFrr72WeM7p3Llz7LrrrjWqe+WVV4799tsvrd0klUrFsGHDJN0AAGXB8FIAANRI0hvmM2bMyFv9mYa+yWdPDNXxr3/9K95777208nbt2sVTTz0VTz/9dBx99NHRvXv3nN5ArKshdwolKVFm5syZcf/992ecJ6nBuWHDhtG/f/+clp1pm8nX9ppKpRLrqu62OmXKlDjooIMy9nKz2Icffhi/+c1vqrWMiOT42rdvH6lUqtb/CqFFixZx+OGHx3/+85+YPHlyTJgwIa699to48MADsxqma968eXHsscfGQw89VAfR1q5S2ydKTc+ePeOyyy6L1157LSZPnhwPPfRQnHnmmdGrV6+serAZN25c7L333svtTa1U5Ws7y1RP69at81J/VdZee+3E8qThOaojUz2ZlkvNbLnllonl77//fp0NxVhVD1mZ4is2meIcOXJk3QZClXbcccfE8nwmmd1///0xYMCAxKTTtdZaK5555pmiGKr5pptuSizfb7/9ok2bNnUcTcSpp54a119/feK0PfbYI+6+++5o2DC/71KPGTMmsXynnXbKS/2ZtrdMywUAKDWSbgAAqJGkoRWmTp0aCxYsyEv93377bWJ5oRto77333rSyhg0bxqOPPlqjxslcet0oRQcffHBi9+SZ3uT89ttv47HHHksr33333TMO65FJps8n9aJTHd9//33iQ4XqbKupVCoOP/zw+Pzzz7P6/N13352xcX55kuKbOnVqteoqNRUVFbHRRhvFySefHPfcc0989dVX8cEHH8RVV10V2267bcb5Fi1aFMcee2zeeuoolFLaJ0pdmzZtYq+99orLL788xo0bF9OmTYvHHnssjjvuuCrf8B87dmzG4R7qSm0N05Sv7Wzy5MmJ5XXxoHTDDTdMLH/77bfzUn9SryuVlZWx/vrr56V+lpZp6KNFixbFfffdVycx3HPPPYnlq622WmywwQZ1EkNNZVqPn3/+eUyYMKFugyGj1VZbLbE8X8fmhx56KA499NBYuHBh2rQ11lgjnn322Vh99dXzsqya+PbbbxN7/IkozNBSv/vd7+Laa69NnLbjjjvG/fffXytDT2bqWa1Lly55qT9TPZmWCwBQaiTdAABQI2uuuWZa2bx58xJ7gamOTI3zScutK1OmTIkXXnghrfyQQw6JXr161ajucm94bNmyZey3335p5aNGjYpJkyalld9+++2JCVy5Di0VkXmbef3113OuK0k+t9XLL788hg0bllbesWPHuOGGGxLnOf3006v1MCupx4T58+eXfQJYJt26dYvTTjstRo0aFe+++27stddeiZ/75ptv4tZbb63b4PKslPaJctO8efPYbbfd4rrrrosvvvgi/vWvf8VKK62U+NnLL798uT1DNWnSJLF83rx5NY61to4Fb775Zl7qeeONNxLLMz1QzqfNNtsssTwfPUV88skn8f3336eVr7POOhmHY6Rm1llnnejWrVvitEw9YeTT9OnTM/b8t8cee9T68vOlb9++GYcovP322+s4GjLJNCxpPnrdfOyxx+LAAw9M7K2xY8eO8eyzz2Ycnq+u3XbbbYlxdu3aNbbbbrs6jeX888+Pyy+/PHHatttuGw899FA0bdq0VpY9bdq0xPK2bdvmpf5M1zj1JdEfACh/km4AgLKx3XbbLXcokx9++CHtwVSvXr2WO99f//rXtOXdddddWQ+hUiyNirUh01u3r732Wl7qz1RPprfL68JHH32U+NbmPvvsU6N6v/vuu/jwww9rVEcpSEqYSaVSiQkMt912W1pZ+/btq/XwqVS21RdeeCHOO++8tPIGDRrEnXfeGcccc0ycfvrpadN//PHHOOCAA3J+WLLpppsmlo8bNy6nesrRuuuuGw899FCccMIJidOfeOKJOo4ov0plnyh3TZo0id/85jfxwgsvJA6J9M033yz3N2nZsmVieU2HcJo3b1589dVXNaojk3z1eJEpSWyLLbbIS/1VWWWVVRKTND799NP49NNPa1T3iBEjEsur6oWLmhswYEBi+bhx4+Ktt96q1WXfeeed8cMPPyROq06ycaE0btw4Dj300MRpN910U9kPpVoqMvVoU9Okvqeffjr222+/xKTP9u3bxzPPPBNdu3at0TLyKVNC3VFHHVWncfz5z3+OSy65JHHaVlttFcOGDavVhMtMQ3/Onj07L/VnqidT8hcAQKmRdAMA1Cvjxo2LuXPnLlWWzRtso0aNSiur6zffaqpx48ZpZfkYAipTzy6ZuunOxcyZMxMfOjVt2jSrh7ZJ3zmi5t/7m2++SSxfa621alTvyJEjazR/qdh+++0TE9Fuu+22pXpzGD9+fGIPBocddli1ulXfcssto6KiIq388ccfT0yiytVDDz2UcbnZ+v777+Oggw5K3EYvuOCCn487l156aeK+N3HixDjmmGOyXl5ERJ8+fRLLn3322ZzqKWeXX3554lv7+eoRplBKYZ+oT7p37x5nnXVW4rTlbWuZkm5qmjDzyiuvxI8//lijOjKZMGFCjeObO3du4rGqQ4cOddajUqYhJZN6K8tF0tCKERE777xzjeqlakceeWTG68czzzyz1pY7ffr0uPjiixOnbbTRRtG7d+9aW3ZtOP744xPLp02bFpdddlkdR0OSTz75JLF81VVXrXado0aNir333jvxvLHSSivF008/Heutt16168+3559/Pt5///208oYNG8bAgQPrLI7LL788/vCHPyRO22KLLeKJJ56IFVZYoVZjWHnllRPLv/7667zUn+l8n2m5AAClRtINAFCvJCU19O3bt8p5Fi5cGGPGjFmqbJ111okOHTrkM7Ral/QW2Zw5c2pc7w477BCVlemXlY888kiN37C/7777Et/47dOnT1Zda2d6c66m3zvT92rWrFmN6r3uuutqNH+pqKioSHyTfNKkSUvto7fcckvi/NV927t9+/bRs2fPtPKvvvoqnnnmmWrVudjHH3+cdpyI+Omt0a222iqrOlKpVBx++OHxxRdfpE3baaedlur9plGjRnHPPfdEmzZt0j57zz335LQtbb/99om9a9x+++0Z37ivb5o3bx7bbLNNWnmmt8RLRbHvE/VRpgSO5W1rK6+8cjRo0CCtPNPQS9l69NFHazR/VRYtWhR33313jep49NFHY/r06WnlW2+9dY3qzUWmXu5qMozOtGnTEpN2WrRoEbvssku162X5OnbsGEcffXTitCeffDLuuOOOWlnuOeeck/Gh9B//+MdaWWZt2nDDDROHE434KcHgnXfeqZM48tVLRznKlNhX3aSYF154Ifbcc8/E+6zWrVvH8OHDi66nu0y93Oy55551dq9/7bXXxu9+97vEaRtvvHE8+eSTGRNr82mVVVZJLH/++efzUv9zzz2X03IBAEqNpBsAoF5ZtseaBg0aJD5IXdL48ePTukEvtV5uIpLfgv/vf/9b43pXWmml2GGHHdLKf/zxx7jmmmuqXe+CBQvi//7v/xKnHXTQQVnVkamBsqbfOynRISISkyWy9eKLL2YcSqIcDRw4MLGHjcWJNvPmzYu77rorbfrmm2+ecUicbBxwwAGJ5TV963rQoEGJ5fvss0/GN+aXdemllyY+AOnYsWPcfvvtacltnTp1ShySKyLi9NNPz3qIoEaNGsVhhx2WVv7NN9/Um0SwbCQl8WX72xazYt4n6qNMyaLLW2dNmzZNfFBak/PKnDlz4l//+le158/GP/7xj7QeCHNx1VVXJZb379+/2nXmaocddojVVlstrXzs2LHx0ksvVavOG264IbGniH322SfjECDkz/nnn59xXzz99NPzcv28pBEjRmTc13r16lXj4UsL5S9/+UvisWvu3Lmx33771Tg5f3kGDx4cf/rTn2p1GaXqzTffjBdffDFxWnWGsHvllVdi9913j1mzZqVNa9myZTz55JOxySab5FxvbZoxY0bcd999idMyJd7l2w033BCnnXZa4rQNNtgghg8fnvG+M98yJau+9NJL8fnnn9eo7oULF8Z//vOfxGnLa4sBACgVkm4AgHpj7ty5MW7cuKXKNtlkk+W+OZY0tNTyescpRklDH3377bcZh0rKRabhbP7617/Gp59+Wq06r7nmmsS3YFu1ahUHHnhgVnVkGu7pzTffrFZMi2V68/GJJ56oVn1z5sxJ7PmlnHXu3Dm23377tPIHHnggZs6cGQ8//HB8//33adOPPPLIGi13wIABiUNTPfPMMxkb3pfn5ZdfzvimbLZDPY0ePTqxW/kGDRrEnXfeGe3bt0+cb6+99orTTz89rXzu3Llx4IEHZv1A69RTT42GDRumlf/hD3+I8ePHZ1VHufvwww/TymoyBEOxKNZ9or5K2s4istvWNt9887Syjz76KF544YVqxfKHP/whpkyZUq15s/XRRx9lTJxZnrvuuiuxN6VVV1019txzz5qGlrXKyso44YQTEqedffbZOdf3/fffx6WXXpo47ZRTTsm5vmI2cuTIqKioSPwrpI4dO2ZMPPzuu+9i9913j6lTp+ZlWW+99Vbst99+sWjRorRpjRs3jptuuqng66O6unfvHhdddFHitPfeey922223Wkm8mTt3bpxyyikxYMCAnJL6Mm2L5Tb866JFi+LEE09M3Oa6deuWc3LMG2+8Ebvssktir2MrrLBCPP7440U5rOSdd96Z2CvP6quvHrvuumutL3/w4MFx3HHHLTW07mLrrbdePPPMM9GuXbtaj2PJZSYNy7hgwYK48MILa1T3rbfemvH6Ru9tAEC5kHQDANQb48aNS3trOJvkmaSkm1Ls6SZTA+qdd95Z47r333//WGedddLKf/jhh9hnn31yblB/+umn49xzz02cdsopp2R8+3hZa665ZrRt2zat/O67705saM7WBhtskBjDv/71r4xDA2Qyb9686N+/f7z//vvVjqdUJQ0TNWfOnLj33nsTe3Bp2rRpHHLIITVa5uqrr54xwenYY4/NOSHriy++iP333z9xe+rTp09WbwtPnjw5Dj744FiwYEHatAsvvHC5x5tLL700evXqlVY+ceLErBMcunbtGieeeGJa+Zw5c2KvvfaKt99+O6t6svHxxx/HkCFD8lZfJg888EA89NBDiQ8zcvXiiy8mJh9tuummNa670Ipxnyg1Z599dt56vvjnP/+ZWJ7NQ9BMDwnPOuusnPeDBx54oNrJMLm68MILc+6R5+233048ZkX8tN0mJRHWphNOOCFxmL6RI0fG1VdfnXU9qVQqjjrqqMRkpx133DG22GKLGkRJLo499tjYa6+9Eqe98cYb0adPn/jkk09qtIznnnsutt1224wJPJdeemmsv/76NVpGoZ111lmx4447Jk574YUXonfv3vHuu+/mbXmjRo2KzTbbLP72t7/lrc5Cevjhh+O9997LW30LFy6Mww8/POOQQbkm9r377rux4447Jh6zmjdvHsOGDavT4f5yceONNyaWDxw4MHG4xny6995748gjj0w8N3fr1i2eeeaZjAn3tWn//fdPLL/55purfe0+YcKEjL35bLHFFtGpU6dq1QsAUHRSAAD1xEUXXZSKiKX+Hn744SrnWbhwYap169ZLzdO9e/c6iji/vvvuu1SjRo3S1sEKK6yQGjJkSGrevHk1qv+JJ55Iq3vx39Zbb5367LPPsqrnoYceSq2wwgqJ9ay55pqpWbNm5RRXv379Eus64ogjUl9//XV1vmoqlUql9t1338R6N91009R3332XVR1fffVVaqeddsq43hb/derUKafYOnXqlFbHgAEDcv+StWz27Nmpli1bpsW6/vrrpxo0aJBWfvDBB+dluV9//XXafr34r0OHDqnRo0dnVc/bb7+dWnfddRPradCgQeq1115bbh2LFi1K7brrrol17LTTTqmFCxdmFcukSZNSbdq0SaznH//4R1Z1zJo1K9WtW7fEOpo3b5664YYbso5nWfPnz08NHz48te+++6YqKytTu+yyS9bzJsVzwQUXLHe+Cy644Odj9j/+8Y/Ut99+W63Y33nnncR9KiJSw4YNq1adNVXddZJJMe0Ti40YMSKxnhEjRlTvS9aiiEg1atQodfjhh6dGjx6dWrRoUc51LFq0KHX22Wcnfuctttgiqzp+/PHHVNu2bRPrOOmkk7KO5W9/+1viMXjJv759+2ZdX6bfcsm/li1bpp588sms6nv55ZdTq622WmI9Xbt2Tc2ZM6fGsVVnO7v22msT66qsrEzddNNNy51//vz5qaOPPjqxjoYNG6befPPNnGPKVd++fet0v6tq2ygGM2bMSG2wwQZVbrfXX399asGCBTnX+/vf/77K/awurtsynds++eSTvC5n6tSpqR49emT8rk2aNEmdf/75qe+//77ayxg7dmxq7733Tqv71FNPzbqOTPEV8rxz6qmnpiorK1OHHXZY6uWXX65RXW+99VaqT58+Gb/neuutl5o7d27W9U2cODG16qqrJtbVtGnT1NNPP12jeGvThAkTEuOuqKjI+/a/rIceeijVsGHDxOWvvfbaqc8//7xWl1+Vb7/9NrXiiismxtaoUaPUlVdemVN9jz32WGqllVbKuM0NHz68lr4JAEDdq9tXfwAACmjZrsErKyujT58+Vc7z+uuvx7Rp05YqK8WhpSIi2rVrF7/61a/SxlOfNWtW9O/fP0466aTYaKONYpVVVolmzZoldmV/xRVXZOzmepdddoljjz02/vWvf6VNe+GFF2KDDTaI8847Lw477LDEYTJefPHFuPbaazP2vNOgQYO49dZbo0WLFtl83Z8deeSRMXTo0LTyW265JQYPHhw9evSILl26xAorrJD4VmO/fv2iX79+aeW//e1vE8emHz9+fGy44YZx8cUXx6GHHhrNmzdP+8xHH30Ud955Z1x++eUxc+bMn8tbtmwZm266adl1Y59J8+bN46CDDop///vfS5Vn6lWlpkNLLbbKKqvEP//5zzj00EPTpn399dex7bbbxrHHHhvHHXdc9OzZM+0zn3zySdx8881x+eWXZxy24IILLoiNN954ubH89a9/TRyWrGPHjnH77bdHZWV2nZN26tQpbr311th7773Tpp1xxhmx1VZbLbenjBYtWsR//vOf6NOnT9pxb86cOfGb3/wmBg0aFCeffHLsvvvu0b1794x1LVq0KCZOnBjjx4+PJ598Mh5++OFaH6Ymkw8++CBOPPHEOOWUU2L77bePffbZJ3r16hUbbrhhNG7cOON8b731Vtx6661x3XXXJQ4/sNlmm5VNl/jFtE+Uqvnz58fgwYNj8ODBsdpqq8V+++0XO+64Y2y22WZVDg01c+bMePzxx+Pyyy+PV155JfEzmXp+W1aTJk1+3k+X9fe//z3eeeed+Otf/5o4zMecOXNi+PDhcckll8TLL7/8c3nHjh2jbdu2ee3tarEdd9wxnn766YiImDFjRuyyyy5xxBFHxCmnnJK4rXzwwQdxww03xNVXXx0LFy5MrPOGG26IZs2a5T3WbJxwwglx//33x3PPPbdU+aJFi+Koo46K4cOHxwUXXBDrrrvuUtNTqVQ8++yz8fvf/z7jNnDeeefFBhtsUO3Ybrzxxhg9evRyP5epR41BgwYl9kC3rGw+U0pWXHHFGD58eOywww6JvbHMmDEjjjvuuLjiiivi2GOPjX322Se6dOmSWFcqlYoJEybEPffcEzfddFNMnjw543IPOOCAjL1wlKLWrVvHM888EzvvvHNi72lz586NP//5z3HVVVfFAQccEPvvv39ss802ib1HLbZgwYJ47bXX4umnn46777473njjjVr8BoW1aNGiuP322+P222+PtddeOw444IDYbrvtYpNNNolVVlmlynm/++67GDlyZAwZMiQef/zxxF4VI366Jr/jjjuqvC5a1gEHHBBffvll4rS11147hgwZkteeDY8++uj4xS9+kZe6Mu1fO+64Y3Tu3Dkvy0jy7bffxoEHHpjxd+jcuXOcf/75eV1mVffvy1p55ZXj3HPPjXPOOSdt2vz58+OMM86Iu+++O84666zYbbfdEu/LFyxYEGPGjImrr766yh4n99hjj4y9YAEAlKKKVKYrHwCAMjJ37txo06ZN/PDDDz+XbbzxxvHaa69VOd/VV18dp59++lJld9xxR+KDyVIwfvz42GqrrWLevHnVmv+TTz6psiFy7ty5seuuu1aZNFJZWRkbbLBBrL766tGqVav4+uuvY+LEifH5559Xuex//OMfccIJJ+Qc88KFC2PrrbeOl156Ked5I356UJxpHPsDDjgg7r///ozzNm7cODbZZJNYffXVo3HjxvHdd9/Fp59+mjimfUVFRdx5553xxBNPxG233bbUtE6dOsWkSZOyjrlz587x6aefLlU2YMCAonwYNm7cuNhqq62W+7k11lgjJk2alHUSSjbOPffc+Otf/1rlZ9Zaa61Ye+21o3379jF16tT47LPP4p133qlynoMOOijuuuuuxMS1JT333HOxww47pD08btCgQTzzzDPVSvD77W9/G1deeWVaeZcuXWL8+PHRsmXL5dYxduzY2GOPPTIOd7FY+/bto1u3btG2bdto2bJlzJkzJ6ZPnx5Tp06NDz74IGbPnp1x3l122SUx2ShJ0nqsar9c7MILL4yLLroo4/TGjRtH9+7do127dtG2bdto3rx5zJkzJ7777rt477334rvvvss4b9OmTeOVV14p2LAf1V0ny1PofWJJI0eOjO233z6tfMSIEUU3xOPyvleHDh2ic+fO0aZNm2jTpk0sWrQoZs6cGR9//HFMnDgx5s+fn3He/v37x+DBg7OOZc6cObHRRhvFxIkTM35m9dVXj/XXXz9WWmmlmDlzZnzzzTfx+uuvpyVMNW7cOIYPHx5//OMf04ba7Nu3b9YJopl+y+HDh8f5558fL774Ytq0tddeO9Zee+1YeeWVY8qUKfHpp58ud4iVs88+OzHhqDqxVXc7+/LLL6NXr17xxRdfZPzMOuusEz169IjmzZvHlClT4rXXXouvv/464+d32223ePTRR2t0/hs4cGDatUVtyLWJMdP6r05dtenbb7+NfffdN8aMGbPcz3bs2DHWWWedWHnllaNp06YxZ86c+Oqrr+Ldd99d7nk1IuK4446Lv/3tb3UyRFrS9WLE8q/3q2vKlClxyCGHxFNPPbXcz1ZUVETnzp2jc+fOsdJKK0WzZs1i3rx5MXPmzPj000/jo48+Shs2OMlpp52W9VB5mY7lhTzvnHbaaXHNNddknN6hQ4fo1KlTtGrVKlq3bh2NGjWKGTNmxIwZM+LDDz/MmBSzpGbNmsUDDzwQu+22W06xZdp+asstt9wSAwcOrHE9P/74Y6y66qqJ++M999wTBx54YI2XkcmkSZNirbXWqrX6k+S6P6dSqejfv3/ccccdVX6uYcOG0bNnz+jYsWO0bt06Zs2aFZMnT44JEyZUeQ8QEdGzZ8947rnnolWrVlnHBQBQ9ArXyQ4AQN157rnnqtXdeNLQRP/9739rP+BadP3116cqKyuXO9RD0l823W3PmjUrtfPOO1er/qS/Bg0apP7+97/X6Dt/8sknGYeiWN5fVUO2zJgxI7Xhhhvm5Xv+3//9XyqVSqUGDBiQNq1ch5daLNNwNEv+nX/++bWy7HPPPTdv22pEpA477LDU/Pnzl7vcb7/9NmOX/BdffHG1v8+8efNSvXv3Tqz3gAMOyLqeqoYJysdfXQ4vle+/Vq1apUaNGpV1/LWhuuskG4XaJ5ZVasNL1cbfQQcdlNNQH4uNHTs24zCN2f41atQo9cADD6RSqeQhh/IxvNSIESNSX3/9dWrttdeu8bo66qijqjWsV21sZx988EFq9dVXz8s28Mtf/jKn4bIySbq2qI2/XD3wwAOJ9XTp0qXG3znf5s2blzr99NOrfQ29vL+WLVumbr755jr9TnU1vNSSFi1alBo0aFCqWbNmtbotNmnSJHXaaaelJk+enHVsmeoq9PBStbmeunXrlho3bly1Ysu0/dTW3y233JKXdXr77bcn1t+uXbtqnXNz8cknn9TpOqvu/jxv3rzU/vvvXyvxbLjhhqkvv/wy/ysXAKDA8veaKABAEUt6G3t5vUikUql4/vnnlyrr2rVrlcNElIJjjz02Ro4cGRtttFGt1N+iRYt47LHH4g9/+EM0atSoRnV17tw5nnrqqTjxxBNrXM8bb7wRhx9+eE7dpi/PiiuuGE899VRsu+221a5jhRVWiDvuuCPOOOOMvMVVao444ogqp1dUVCz3M9V1ySWXxL333hsrr7xyjepp0aJFXHvttTFkyJDlvp2+aNGiOOywwxLfPt5pp52yHkomSaNGjeLuu++ONm3apE2777774h//+EdW9fTo0SNeffXV+O1vf5vXfSYiYrXVVotf/epXea0zSb7jjojYeuutY8yYMTXa54tdIfaJUlfTc92ymjdvHn/5y1/izjvvrNZ23Lt37xg+fHjicSAb7du3j+HDh8e+++5brflzscoqq8SYMWMSh7zKRoMGDeLiiy+OG2+8MaeelGpTt27d4pVXXsnYg0s2Kioq4tRTT40nnniiYMNl1YVle1BaLN/Dq+RDo0aN4sorr4xx48bFNttsk7d6GzRoEL/+9a/j3XffrbVrnWJSUVERZ599drz77rtx6KGH5v380KRJkxgwYEC8//77cdVVV8VKK62U1/rrWm0d1xo3bhx/+MMf4s0334xevXrVyjKKVaahpfr3718r146lqFGjRnHffffFTTfdlFUvmdmorKyMM888M15++eXo2LFjXuoEACgmkm4AgHph2aSbioqK5T40feutt+L7779fqqzYhrSorj59+sSECRPi1VdfjYsvvjj233//WG+99aJDhw7RokWLGjfwNmjQIP70pz/FG2+8Ua0GzI4dO8agQYPirbfeih122KFGsSzWtm3buO222+LLL7+Mf/3rX3HMMcdEr169YvXVV4/WrVtXu9G/Q4cO8cwzz8Sll14a7du3z3q+xo0bR//+/X9+6FCf9e/fPxo0aJBx+rbbbhtrr712rS3/gAMOiPfeey/OO++8aNu2bU7zNm/ePI4//vh499134+STT85qnr/85S+JQyt07Ngxbr/99hoPodWpU6e47bbbEvfj3/72tzF+/Pis6mnevHlcccUV8f7778fpp59eowdXnTp1iqOOOiqeeuqp+Oyzz2qcSJeNc889N1577bW4+OKLY6uttqpRYsTWW28dd9xxR4wePbpgQ0rVpbreJ0rdd999F/fcc0/079+/Rg+SVlpppTjhhBPi/fffj3POOadGx4LevXvHW2+9FUceeWSVx9clNW7cOH7zm9/EO++8U63h7aqrQ4cOMWbMmLj88stzSvbq27dvjBs3rigTNFZZZZV49tlnY8iQIbHuuuvmNO+OO+4YY8eOjauvvrrsE9aSkuK7dOkShx12WN0Hk6UtttgiRo8eHaNGjYpDDjkkWrRoUa16VllllTjllFPivffei9tvv73kk/pz1alTp7jjjjvio48+inPPPTe6detWo/q22WabuP766+Prr7+OW2+9NTp16pSnSAvrL3/5Szz22GNx8sknxzrrrFPj+jbccMO44oor4rPPPos//elP0aRJkzxEWTo++uijjMl+Rx99dB1HU/yOPPLI+PDDD+OSSy6p9j7VsmXLOPHEE+PNN9+Myy+/vN5tcwBA/VGRShXRIMkAALXksssuizlz5vz8/1atWsXpp59e5TxvvPFG/Oc//1mqbI899ogtttiiVmIsZ1OnTo1HHnkknnvuuXjjjTfi008/jenTp8f8+fOjWbNmsfLKK0eXLl1i8803j5122im22267rB8SFpMffvghHnrooXj22WfjxRdfjG+//TamTJkSFRUVseKKK8aaa64ZPXr0iO222y5+9atfJSbpTJ48OWbNmrVUWcOGDWP11Vevq69Rr82bNy+eeuqpePbZZ2P8+PHx8ccfx/fffx8//vhjNG7cONq0aRNrrbVW9OzZM7bffvvYY489qv3ArdQsXLgwnn/++Xjuuedi/Pjx8dFHH8WXX34Zs2fPjgULFkSLFi1ixRVXjNatW0eXLl1inXXWiR49ekSfPn2iS5cuhQ4/fvzxx3jllVfixRdfjPfeey8+/vjjmDRpUkyfPj1mzZoVCxcujBVXXDFatmwZHTt2jJ49e8Ymm2wSu+yyS6y11lqFDn8pkyZNSitr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Y5HP84/8yI+Ef/qnfzoNNYUQwuc+97nwuMc9TuBmhkW28ze+8Y1zwZpR0Klpmv4aWxnHwPw537mY7QMAAO0J3QAAcIaBVqjLq1/96nD33XeHvb298OlPfzq8/OUvDw899FD42Z/92RBCCC95yUvC6173utP7v+pVrwr33XdfePvb3x4+85nPhDe96U3hE5/4RHjlK18Z61dIXttt/Fu/9VvhzjvvDH/8x38cnvSkJ4UHHnggPPDAA+HrX/96rF8hC22284033hhuu+22M/++4zu+I3z7t397uO2224RBLtD28/zyl788/Nd//Vd41ateFT73uc+Fe++9N7z1rW8Nr3jFK2L9Cllou51vv/328O53vzvcc8894Qtf+EL4yEc+Eu68885w++23n5lliLO+/vWvnwbvQgjhC1/4Qrj//vvDl770pRBCCK973evCS17yktP7/+Iv/mL4/Oc/H37t134tfOYznwnvete7wp/8yZ+EO+64I0bzAQAASIDlpQAAOKfm5aaEjqjNC1/4wvAf//Ef4dd//dfDAw88EJ7xjGeE++67L9xyyy0hhBC+9KUvnZk94TnPeU543/veF974xjeG17/+9eF7vud7wsHBQbjtttti/QrJa7uN3/3ud4eHH344/PRP//SZ57nrrrvCm970piGbnpW225nFtN3Ot956a/jwhz8c7rjjjvC0pz0tPOEJTwivetWrwmte85pYv0IW2m7nN77xjWFlZSW88Y1vDF/+8pfDd33Xd4Xbb789/OZv/masXyELn/jEJ8Lznve80+9f/epXhxBC2N7eDru7u+Hf/u3fTgM4IYTw3d/93eHee+8Nd9xxR/j93//98MQnPjH80R/9UXjBC14weNsBAABIw0pjjlkAAC5QW/hG6AYAAMpV2/lNG86FAACgPTPdAABwocmB15IHqQ0yAwAAAAAA8zKvMgAAAAAAAAAAtCR0AwAAwSw3AABQA/3+6WwXAABYjOWlAABoZXwwtuSlpgAAAAAAAC5iphsAAAAAAKiYCyoAAGAxQjcAACyslCnIS/k9AACAy+n/AwAAXRG6AQAAAACAypntBgAA2luL3QAAAPI26ypRA7YAAAB5GT+PMyMQAABczkw3AAD0IpcB2lzaCQAAMCQXUgAAwOWEbgAA6M3ewZZQCwAAQIacywEAwOWEbgAA6F2qg7WptgsAAAAAAEif0A0AAINIbdablNoCAAAMy/kAAADQhbXYDQAAoC7jg9vbm/vR2wAAAAAAALAIM90AABBNjNlvBG4AAIAQnBsAAADLE7oBACA6g90AAAAAAEBuhG4AAKiGcA8AADAuxuybAABAOYRuAACogoF0AABgFucLAADAIoRuAABIQp9XmBpABwAAAAAAuiZ0AwBAUroOyAjcAAAA83DuAAAAtLUWuwEAANAHA+YAAACLcT4FAADzEboBAKA4BogBAADacy4FAADtrDRN08RuBAAATNre3F/4sQaKAQCAZS1zTpIb51AAALAYM90AAFAMA8UAAADtOI8CAIDFrcZuAAAAAAAAMDyBGwAAWI7lpQAASFbb6dwNGAMAAF0rbZkp500AANAdM90AAJC10YCxgWMAAKAPzjUAAIBZhG4AAMieQXAAAKBPewdbzjsAAIBz1mI3AAAA5mGAGwAAiG38vCS3ZaecUwEAQPfMdAMAQLIMCgMAAKlyvgIAAJjpBgCA5BnMBgAAUjR5rpLq7DfOqQAAoB9mugEAIGkGhwEAABbnnAoAAPpjphsAAAAAAOjAeMAl1VlvAACA7qw0TdPEbgQAAAAAAJQmVvDG7DYAADAMoRsAAAAAABjAECEcgRsAABjOauwGAAAAAAAAAABAbtZiNwAAAAAAAGoxPhNNrOWnAACAbpjpBgAAAAAABjDE0k+CPAAAMByhGwAAAAAAiGyIQA4AANAty0sBAAAAAEAE04I2o5+ZsQYAANJnphsAAAAAAEhAF7PdmDEHAACGI3QDAAAAAAAAAAAtCd0AAAAAAAAAAEBLQjcAAAAAAJCYvYMtS0UBAEDiVpqmaWI3AgAAAAAAmM/25v6FtwvrAADAMIRuAAAAAAAgQxeFbwRvAACgf2uxGwAAAAAAAHRD2AYAAIazGrsBAAAAAABAO5ctMQUAAPTP8lIAAAAAAJCxUQDHLDcAADAsM90AAAAAAEDmBG4AAGB4ZroBAAAAAAAAAICWzHQDAAAAAAAAAAAtCd0AAAAAAAAAAEBLQjcAAAAAAAAAANCS0A0AAAAAAAAAALQkdAMAAAAAAAAAAC0J3QAAAAAAAAAAQEtCNwAAAAAAAAAA0JLQDQAAAAAAAAAAtCR0AwAAAAAAAAAALf3/AdLN70ahcQ8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 2249x1024 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "subj = 'subj01'\n",
    "\n",
    "NSDsubj = fMRISubject(subj,\n",
    "                     'nativesurface',\n",
    "                     'betas_fithrf_GLMdenoise_RR')\n",
    "\n",
    "OTC = BrainRegion(NSDsubj, 'OTC', 0, plot = True)\n",
    "OTC.load_betas()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "570ceb13-78a6-4b63-8048-022e32550215",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loading train and test data\n",
      "train lh (1000, 425, 425, 3) (1000, 3, 15720)\n",
      "train rh (1000, 425, 425, 3) (1000, 3, 17008)\n",
      "test lh (515, 425, 425, 3) (515, 3, 15720)\n",
      "test rh (515, 425, 425, 3) (515, 3, 17008)\n"
     ]
    }
   ],
   "source": [
    "OTC.load_train_test_data(train_imageset = 'nonshared1000-3rep-batch1', \n",
    "                         test_imageset = 'special515')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "fae28c77-e408-4fb9-9223-e16a53923fab",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(515, 3, 32728)\n"
     ]
    }
   ],
   "source": [
    "X = np.concatenate((OTC.brain_data['test']['lh'],\n",
    "                    OTC.brain_data['test']['rh']), axis = 2)\n",
    "print(X.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "d07fb14d-c93e-43bc-b268-3756a67599ae",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "32728 28464\n"
     ]
    }
   ],
   "source": [
    "OTC.get_ncsnr_mask(threshold = 0.3)\n",
    "print(len(OTC.mask), np.sum(OTC.mask))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "9f672c7e-8b2a-41a8-be78-021ac0a8807a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(515, 3, 28464)\n"
     ]
    }
   ],
   "source": [
    "X = X[:,:,OTC.mask]\n",
    "print(X.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "3e7b2800-3219-4587-b330-90ede7e5ab1d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(28464, 515, 3)\n"
     ]
    }
   ],
   "source": [
    "X_ = np.transpose(X, (2,0,1))\n",
    "print(X_.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "82ee5651-3233-46e4-81f2-00589ba18592",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<style>\n",
       "    /* Turns off some styling */\n",
       "    progress {\n",
       "        /* gets rid of default border in Firefox and Opera. */\n",
       "        border: none;\n",
       "        /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
       "        background-size: auto;\n",
       "    }\n",
       "    progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
       "        background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
       "    }\n",
       "    .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
       "        background: #F44336;\n",
       "    }\n",
       "</style>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "    <div>\n",
       "      <progress value='2' class='' max='10' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
       "      20.00% [2/10 01:16&lt;05:04]\n",
       "    </div>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/jovyan/work/DropboxSandbox/GSN/gsn/calc_shrunken_covariance.py:179: UserWarning: selected likelihood is not finite; something might be wrong?\n",
      "  warnings.warn('selected likelihood is not finite; something might be wrong?')\n"
     ]
    }
   ],
   "source": [
    "csbs = []\n",
    "ncs = []\n",
    "for i in progress_bar(range(10)):\n",
    "    rand_indices = np.random.randint(low=0, high=X.shape[2], size=1000)\n",
    "    X_ = np.transpose(X[:,:,rand_indices], (2,0,1))\n",
    "\n",
    "    nc, ncdists, results = rsa_noise_ceiling(X_, wantverbose=False)\n",
    "    ncs.append(nc)\n",
    "    csbs.append(results['cSb'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "048c58c7-116b-4af5-8cad-0c69c3cc0ece",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Estimating noise covariance...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "KeyboardInterrupt\n",
      "\n"
     ]
    }
   ],
   "source": [
    "#nc, ncdists, results = rsa_noise_ceiling(X_, wantverbose=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "11fd32b5-09cf-4058-95fa-9dd1b28ca6d6",
   "metadata": {},
   "outputs": [],
   "source": [
    "alphas = []\n",
    "    eigs = []\n",
    "    \n",
    "    for csb in csbs:\n",
    "\n",
    "        eigvals, eigvecs = np.linalg.eig(csb)\n",
    "        # Sort eigenvalues and eigenvectors in descending order\n",
    "        idx = eigvals.argsort()[::-1]\n",
    "        eigvals = eigvals[idx]\n",
    "        eigvecs = eigvecs[:, idx]\n",
    "\n",
    "        alpha, _ = eiganalysis.get_powerlaw(eigvals/eigvals.sum(), \n",
    "                                                fit_range.astype(int)) \n",
    "        print(alpha)\n",
    "        alphas.append(alpha)\n",
    "        eigs.append(eigvals)\n",
    "\n",
    "    mean_eig = np.mean(np.vstack(eigs),axis=0)\n",
    "    mean_alpha = np.mean(alpha)\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "jspbase",
   "language": "python",
   "name": "jspbase"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
